package pikes.ecma;

import pikes.core.Printable;

public interface SyntaxTreeVisitor {

	void visitSourceElement(SourceElement sourceElement) throws EcmaSyntaxVisitingException;

	void beforeParameterList() throws EcmaSyntaxVisitingException;

	void afterParameterList() throws EcmaSyntaxVisitingException;

	void openCurlyBrace() throws EcmaSyntaxVisitingException;

	void closeCurlyBrace() throws EcmaSyntaxVisitingException;

	void beforeVariableDeclarations() throws EcmaSyntaxVisitingException;

	void identifier(CharSequence text) throws EcmaSyntaxVisitingException;

	void identifier(Printable text) throws EcmaSyntaxVisitingException;

	void equalSign() throws EcmaSyntaxVisitingException;

	void comma() throws EcmaSyntaxVisitingException;

	void beforeSourceElement() throws EcmaSyntaxVisitingException;

	void endOfStatement() throws EcmaSyntaxVisitingException;

	void binaryOperator(CharSequence operator) throws EcmaSyntaxVisitingException;

	void dotOperator() throws EcmaSyntaxVisitingException;

	void New() throws EcmaSyntaxVisitingException;

	void Return() throws EcmaSyntaxVisitingException;

	void Function() throws EcmaSyntaxVisitingException;

	void Do() throws EcmaSyntaxVisitingException;

	void While() throws EcmaSyntaxVisitingException;

	void If() throws EcmaSyntaxVisitingException;

	void Else() throws EcmaSyntaxVisitingException;

	void questionMark() throws EcmaSyntaxVisitingException;

	void colon() throws EcmaSyntaxVisitingException;

	void whiteSpace() throws EcmaSyntaxVisitingException;

	void stringQuote() throws EcmaSyntaxVisitingException;

	void openSquaredBrace() throws EcmaSyntaxVisitingException;

	void closeSquaredBrace() throws EcmaSyntaxVisitingException;
}
